package com.dk.controller;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;

public class Mytest02 {
    public static void main(String[] args) {
        //Consumer  消费型接口  提供了一个参数没有返回值的方法
        Consumer<String> son=System.out::println;
        son.accept("大师赛");
        Consumer<Map<String,Integer>>  cc=(map)->{
            Integer sum=map.get("a")+map.get("b");
            System.out.println(sum);
        };
        Map<String,Integer> map=new HashMap<>();
        map.put("a" ,12);
        map.put("b" ,32);
        cc.accept(map);
//        Supplier  供给型接口 提供了没有参数有返回值的方法
        Supplier<String> su=()->"张三";
        System.out.println(su.get());
        //Predicate 断言型接口 提供了一个参数返回值为boolean类型的方法
        Predicate<Integer> p=a->a>=18;
        System.out.println(p.test(5));
        //Function  函数型接口 提供了一个参数（map多个参数）有返回值的方法
        Function<List<Integer>,Integer> f=list->{
            int sum=0;
            for (int i= 0;i<list.size();i++) {
                sum+=list.get(i);
            }
            return sum;
        };
        List<Integer> list=new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        System.out.println(f.apply(list));
    }
}
